perm filename PASCHG.SCO[PAS,SYS] blob sn#452550 filedate 1979-07-02 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00006 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	changes made to PASCAL/PASSGO on 1-jul-79:
C00003 00003	changes made to PASCAL/PASSGO on 31-may=79:
C00004 00004	changes made to PASCAL/PASSGO on 27-mar-79
C00007 00005	changes made to PASCAL/PASSGO on nov-1-78:
C00008 00006	changes made to PASCAL during summer 1978:
C00011 ENDMK
CāŠ—;
changes made to PASCAL/PASSGO on 1-jul-79:

1.	Now it can see page marks in files with no SOS lines. All PASCAL
	programs can also. See DOC:COPY.PAS for a sample.
2.	In compile-time error messages, it will give both the line/page
	number and the name of the procedure in which it occured.
3.	A bug was fixed: if you would have an array with more than
	377777B elements (max half-word positive integer), it would give you
	a runtime error ARRAY SUBSCRIPT OUT OF BOUNDS when your subscript 
	would go over that value.

changes made to PASCAL/PASSGO on 31-may=79:

1.	MIN and MAX require at least two parameters. one parameter will
	produce a compilation error message.
2.	the switches [NO]TTY and [NO]OUTPUT were added, to tell the 
	compiler that external/fortran procedures will [will not] use
	the input file TTY and the output file OUTPUT.

	the compiler options are (*$Y-,O-*). default is ON in both.
3.	A bug in MESSAGE was fixed, by which it would fail when trying
	to write a scalar as the last thing.
changes made to PASCAL/PASSGO on 27-mar-79

1. The switch /PROFILE was added. If you EXECUTE a program with that
	switch, PCROSS will be started after your program, and it will
	show on the left margin the number of times that each basic block
	was executed. Only the first statement of each basic block will
	have a count.
	To get a profile of MYPROG.PAS :
		@EXECUTE MYPROG/PROFILE
	Once your program and PCROSS have run, MYPROG.CRL will contain
	statement counts on the left margin, after the line number.
	the compiler option to use in the source is (*$C+*).
2. the procedure SETRAN(i: integer) is now supported. It allows to reset
	the seed for the function RANDOM(dummy:real). For details on how
	they work, see the FORTRAN manual.
3. Files with no line numbers are treated in a nicer way now. The compiler
	doesn't see the page marks yet (any volunteers to fix that one?)
	but now:
		a. In an error message, it gives you the procedure name
		   instead of the page number.
		b. The line increment was changed to one.
		c. It produces a file XXXXXX.PRC, where XXXXXX is the name 
		   of your source file, that gives, for each procedure,
		   the name, and the line numbers for the header line,
		   the BEGIN statement and the END statement. This can help
		   you ubicate the errors and also use the debugger.
4. Fixing small bugs and making cosmetic changes.

Things that are being done now:
	A. Conversion to native DEC-20 mode. This will speed things up
		between a 20 and a 50%.
	B. Improving (first af all, fixing) the debugger.
	C. /PROFILE will eventually give also timing counts for each
		procedure.

Comments, complains, suggestions, etc. to A.ARMANDO at LOTS, 
	CSL.ARMANDO at SCORE, ARR at SAIL.
changes made to PASCAL/PASSGO on nov-1-78:

	+ A String Manipulation Package was added. See the documentation
	   on DOC:PASCAL.STRINGS
	+ The file OUTPUT will not be created if you don't use it. 
	+ There was a bug by which, if you would declare any file in the
	   program header (as a program parameter), INPUT and OUTPUT would
	   not be open unless they were also in the header. It was fixed.
	+ The number of errors detected was not being counted right. Now
	   it is.

changes made to PASCAL during summer 1978:

1. Bugs that were fixed:
	+ It would take '\' as an end of comment.
	+ If your program had a lot of comments following each other
	  (not one big comment, but open-close-open.... comment)
	  it would run out of memory space.
	+ when using the CREF switch, it was not passing the file names
	  to PCROSS.
	+ to assign a parameter file to TTY: you would have to type 
	   TTY:FOO instead of only TTY:
	+ The procedures DATE and TIME were returning empties.
	+ It would try to LOAD the object file even if there were errors.
	+ Sometimes, it would produce, without aparent reason, the message:
		STACK OVERRUNS HEAP: RETRY WITH MORE CORE

2. Things changed in the compiler:
	+ Now, the PASCAL programs will detect pointers that are nil or
	   undefined, and isue the appropriate error message.
	+ Now the bell will sound at the end only if there are errors.
	+ It works fine with all the compile-class commands. Particularly,
	   if you say @DEBUG MYPROG.PAS, it will invoke the PASCAL debuger
	   properly (If you say @EXEC MYPROG.PAS/DEBUG, it will not work
	   yet, though).
	+ When calling it directly, you can default (by <cr>) the object
	   and list file names. They will be MYPROG.REL and MYPROG.LST,
	   respectively. Or you can default any of the file extensions.
	   they will be .REL, .LST and .PAS, respectively.
3. NEW COMPILER: PASSGO!
	+ An INCORE version, called PASSGO, was created. It is much faster
	   and it is compatible with PASCAL in everything except external
	   procedures. The extension for PASSGO programs is PGO.